const Subscription = require('egg').Subscription

class UpdateCache extends Subscription {
    // 通过 schedule 属性来设置定时任务的执行间隔等配置
    static get schedule() {
        return {
            interval: '1h', // 1 分钟间隔
            type: 'all', // 指定所有的 worker 都需要执行
        }
    }

    // subscribe 是真正定时任务执行时被运行的函数
    async subscribe() {
        const res = await this.ctx.curl('http://127.0.0.1:7001/books/', {
            dataType: 'json',
        });
        let data = res.data;
        // console.log(data);
        let randomRes = data[Math.floor(Math.random() * data.length)]; // 随机获取一个结果存入缓存中
        // console.log(randomRes);
        this.ctx.app.cache = randomRes;
    }
}

module.exports = UpdateCache;
